home *** CD-ROM | disk | FTP | other *** search
/ Programming Sound Cards / Programming Sound Cards.iso / sound_80 / waveinfo.pas < prev    next >
Pascal/Delphi Source File  |  1995-01-01  |  2KB  |  92 lines

  1. Library WaveInfo;
  2. {
  3.   Copyright (c) June 1993, by Charlie Calvert
  4.   Feel free to use this code as an adjunct to your own programs.
  5. }
  6.  
  7. uses
  8.   MMSystem,
  9.   PlayInfo,
  10.   Strings,
  11.   WinCrt,
  12.   WinProcs,
  13.   WinTypes;
  14.  
  15. function GetNumTracks: LongInt; export;
  16. Var
  17.   Info   : TMCI_Status_Parms;
  18.   Result : LongInt;
  19.   Flags  : LongInt;
  20.   S1     : array [0..MsgLen] of Char;
  21. begin
  22.   FillChar(Info, SizeOf(TMci_Status_Parms), 0);
  23.   Info.dwItem     := MCI_STATUS_NUMBER_OF_TRACKS;
  24.   Flags := MCI_STATUS_ITEM;
  25.   Result := mciSendCommand( wDeviceId, MCI_STATUS, Flags, Longint(@Info));
  26.   if Result <> 0 then begin
  27.     ErrorMsg(Result, S1);
  28.     GetNumTracks := -1;
  29.     exit;
  30.   end;
  31.   GetNumTracks := Info.dwReturn;
  32. end;
  33.  
  34. procedure PlayFromTo(Start, Finish: Byte); export;
  35. Var
  36.   Info          : TMCI_Play_Parms;
  37.   Flags, Result : LongInt;
  38.   S1: array[0..MsgLen] of Char;
  39. begin
  40.   Info.dwCallBack := PlayWindow;
  41.   Info.dwFrom := 600;
  42.   Info.dwTo   := 1000;
  43.  
  44.   Flags := MCI_FROM OR MCI_TO or Mci_Notify;
  45.   Result := mciSendCommand(wDeviceId, MCI_PLAY, Flags, Longint(@Info));
  46.  
  47.   if Result <> 0 then ErrorMsg(Result, S1);
  48. end;
  49.  
  50. function DoRecord(MMSecs: LongInt): LongInt; export;
  51. var
  52.   Info: TMCI_Record_Parms;
  53.   Flags: Word;
  54.   Result: LongInt;
  55.   S1     : array [0..MsgLen] of Char;
  56. begin
  57.   Info.dwCallBack := PlayWindow;
  58.   Info.dwTo := MMSecs;
  59.   Flags := Mci_To or Mci_Notify;
  60.   Result := MciSendCommand(wDeviceID, Mci_Record, Flags, LongInt(@Info));
  61.   if Result <> 0 then ErrorMsg(Result, S1);
  62. end;
  63.  
  64. function SaveFile(FileName: PChar): Boolean; export;
  65. var
  66.   MciSave: TMCI_SaveParms;
  67.   Flags: Word;
  68.   Result: LongInt;
  69.   S1     : array [0..MsgLen] of Char;
  70. begin
  71.   mciSave.lpfileName := FileName;
  72.   Flags := MCI_Save_File or Mci_Wait;
  73.   Result := MciSendCommand(wDeviceID, MCI_Save, Flags, LongInt(@MciSave));
  74.   if Result <> 0 then ErrorMsg(Result, S1);
  75. end;
  76.  
  77. exports
  78.   OpenMCI index 1,
  79.   CloseMCI index 2,
  80.   PlayMCI index 3,
  81.   SetTimeFormatMS index 4,
  82.   GetInfo index 5,
  83.   GetNumTracks index 6,
  84.   GetLen index 7,
  85.   PlayFromTo index 8,
  86.   DoRecord index 9,
  87.   SaveFile index 10,
  88.   GetMode index 11,
  89.   GetLocation index 12;
  90. begin
  91. end.
  92.